home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #1 / Amiga Plus CD - 2000 - No. 1.iso / Games / Oldies / Haktar / Haktar.txt < prev    next >
Encoding:
Text File  |  1999-12-03  |  40.6 KB  |  914 lines

  1. Haktar V1.6
  2. (C) by Guido Wegener Mär.1992
  3.        Eisenacher Str. 2
  4. °ª°    5300 Bonn 1
  5.        West Germany
  6.  
  7. Dieses Programm darf nur auf der beim Programmstart angegebenen Serie
  8. verkauft werden.
  9. Wenn Sie Haktar auf Ihrer eigenen PD-Serie (o.Ä.) veröffentlichen wollen,
  10. dann brauchen Sie eine eigene Version, die einen Eintrag für Ihre Serie
  11. enthält. Schicken Sie mir also einen Brief, der Informationen über das
  12. Copyright, die Preise etc. Ihrer Serie enthält.
  13. Haktar benutzt die ARP.library und wurde mit Aztec C 5.0b geschrieben.
  14.  
  15. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  16.  
  17. I  Über diese Anleitung :
  18. Diese Anleitung ist nur eine zusammenfassende Übersetzung der wichtigeren
  19. Stellen der englischen Anleitung. Einige (unwichtige) Informationen stehen
  20. nur in der englischen Version. Die exakten Copyright-Bedingungen sind die,
  21. die dort vermerkt sind.
  22. Deutsch ist zwar meine Muttersprache, aber ich habe die erste Version dieser
  23. Anleitung gewohnheitsmäßig in Englisch geschrieben. Erst später habe ich diese
  24. dann übersetzt. Jetzt scheitere ich gerade am Versuch, beide Anleitungen auf
  25. dem neuesten Stand zu halten. Also sollte man beide Versionen überfliegen.
  26. Leute, die nur spielen wollen, brauchen sich nur die Kapitel II,IV,V (,IX)
  27. und X anzusehen. Der Rest ist für die Programmierer.
  28. Für alle, die es noch nicht gemerkt haben : Diese Anleitung ist chaotisch !
  29. Schlimm ? Na, dann mach es doch besser ! Wer also ein gutes Werk tuen möchte,
  30. soll sich doch BITTE mal drum kümmern und eine bessere Anleitung schreiben !
  31. Für diesen Zweck (aber eigentlich auch sonst) beantworte ich natürlich gerne
  32. alle Fragen zu Haktar und dem Rest der Welt. Fragen, die mit Rückporto
  33. gestellt werden, sind mir die liebsten...
  34. Bevor Du jetzt 50KB Text einhaust, frag' mich doch lieber, ob nicht schon ein
  35. anderer Held die Arbeit gemacht hat (Ich glaub' aber nicht dran...).
  36.  
  37. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  38.  
  39. II  Über Haktar :
  40. Ich habe Haktar geschrieben um die Programmierung von Adventures zu
  41. erleichtern. Mit Haktar sollte jeder, der nicht absolut untalentiert ist,
  42. Adventures erstellen können.
  43.  
  44. Merkmale :
  45. - Alle Handlungsmöglichkeiten werden dem Benutzer angezeigt, und er kann
  46.   eine davon ausführen lassen.
  47. - Jeder Gegenstand und jeder Raum entspricht einem ASCII-Text auf Diskette.
  48. - Diese Texte bestehen aus ca.40 verschiedenen Befehlen und können mit jedem
  49.   Texteditor (z.B. MicroEmacs) erstellt werden.
  50. - Haktar liest diese Dateien nach Bedarf ein und springt so von Datei zu
  51.   Datei.
  52.  
  53. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  54.  
  55. III  Struktur eines Abenteuers :
  56. Das wichtigste ist die Kopf-Datei.
  57.  Hier stehen die Startkommandos.
  58.  Das Hauptverzeichnis wird eingestellt (headpath).
  59.  Man kann eine Startzeit einstellen (settime).
  60.  Man sollte das Maximalgewicht einstellen (maxwight).
  61.  Nach Bedarf können auch schon Flags und Variblen gesetzt werden.
  62.  Gegenstände können in die Tasche des Helden gelegt werden.
  63.  Eine Datei, die nach jedem Zug ausgeführt wird, kann hier eingestellt
  64.   werden.
  65.  Dateien, die mehrere Gegenstände oder Räume beinhalten, müssen hier
  66.   deklariert werden.
  67.  Ein einleitender Text sollte ausgegeben werden.
  68.  Es MUSS ein go Befehl benutzt werden um den Startraum zu kennzeichnen.
  69. Jeder Raum ist als einzelne DOS-Text-Datei angelegt.
  70.  Hier steht die Liste der Gegenstände in diesem Raum und die Dinge, die
  71.  der Held in diesem Raum tun kann.
  72. Jeder Gegenstand ist als einzelne DOS-Text-Datei angelegt.
  73.  Hier stehen die Dinge, die der Held mit dem Gegenstand tun kann.
  74. Man kann auch mehrere Räume und Gegenstände zu einer einzigen Datei
  75.  zusammenfassen.
  76.  
  77. Struktur eines Raumes :
  78.  
  79. items ...,...,...                  ; Liste der Gegenstände im Raum
  80.  
  81. do ...                             ; Wird als mögliche Aktion angeboten.
  82.  [
  83.   ...                              ; Wenn die obige Aktion aufgerufen wird,
  84.   ...                              ; dann wird das in den Klammern ausgeführt.
  85.  ]
  86. do ...                             ; weitere Aktionsmöglichkeiten
  87.  [
  88.   ...
  89.   ...
  90.  ]
  91. if... ...                          ; Folgende Möglichkeiten werden nur
  92.  [                                 ; angeboten, wenn das if wahr ist.
  93.   do ...
  94.    [
  95.     ...
  96.     ...
  97.    ]
  98.   do ...
  99.    [
  100.     ...
  101.     ...
  102.    ]
  103.  ]
  104.  
  105. Struktur eines Gegenstandes :
  106.  
  107. do ...            ; Hier ist das wie beim Raum, nur ohne items-Befehl.
  108.  [
  109.  ]
  110. if ...
  111.  [
  112.   do ..
  113.    [
  114.    ]
  115.  ]
  116.  
  117. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  118.  
  119. IV  Starten von Haktar :
  120. Im CLI 'Haktar [<Kopfdatei>]' eingeben.
  121. Oder Icon anklicken.
  122.  
  123. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  124.  
  125. V Bedienung der Benutzeroberfläche :
  126. Die Oberfläche besteht aus folgenden Elementgruppen :
  127. A Menü (rechter Mausknopf)
  128. B Listengadgets (der große Bereich mit dem Proportionalgadget)
  129. C Steuerungsgadgets (die 6 einfachen Knöpfe in der Mitte)
  130. D Textfenster (unten)
  131.  
  132. A:a:Project :
  133.    1 Restart
  134.      Erneuter Start des Abenteuers, das gerade gespielt wird.
  135.    2 Start...
  136.      Wählen Sie hier die Kopfdatei des Abenteuers, das Sie spielen wollen,
  137.      aus. Normalerweise sollten diese Dateien mit dem Anhänglsel .hhf
  138.      versehen sein. Danach sollten Sie auf C1,C2,C3 rumhauen...
  139.    3 Load...
  140.      Wenn Sie einen Spielstand gespeichert haben (Aa4), können Sie die
  141.      Position hier wieder einlesen lassen.
  142.    4 Save...
  143.      Hier können Sie den Spielstand speichern.
  144.    5 About
  145.      Das Übliche.
  146.    6 Crap
  147.      Gelaber
  148.    7 Short Instructions
  149.      Sehr knappe Anleitung zu der Benutzeroberfläche.
  150.    8 Quit
  151.      Hier passiert das gleiche wie beim Close-Gadget.
  152.   b:System :
  153.    1 Headpath...
  154.      Wenn Sie ein Abenteuer auf eine andere Diskette (oder Festplatte) kopiert
  155.      haben, müßten Sie eigentlich seine Kopfdatei ändern. Zum Testen kann man
  156.      aber auch hiermit das Abenteuer-Verzeichnis ändern. Folgende headpath-
  157.      Befehle werden dann ignoriert und immer dieser Pfad benutzt.
  158.    2 Restore Headpath
  159.      Wenn man den Headpath (Ab1) geändert hat, kann man hiermit den korrekten
  160.      headpath wiederherstellen.
  161. B: 1 das große Listenfeld
  162.      Hier werden eventuelle Auswahlmöglichkeiten angezeigt. Man kann sich dann
  163.      eine davon aussuchen, indem man einfach an die entsprechende Stelle
  164.      klickt. Mit B2-4 kann man sich bei längeren Listen andere Bereiche
  165.      ansehen.
  166.    2 das längliche Proportrionalgadget
  167.      Indem man den weißen Balken verschiebt kann man durch die Liste scrollen.
  168.    3 Pfeil nach oben
  169.      Geht einen Listeneintrag zurück.
  170.    4 Pfeil nach unten
  171.      Geht einen Listeneintrag weiter.
  172. C: 1 Room
  173.      Wenn Sie dieses Gadget anklicken, wird in der Liste angezeigt, was Sie
  174.      in/mit dem Raum tun können. Hier stehen auch meist die Möglichkeiten,
  175.      wie Sie den Raum verlassen können. Klicken Sie einfach auf einen der
  176.      Auswahlpunkte und dieser wird ausgeführt.
  177.      Diese Liste erscheint auch automatisch bei jedem Raumwechsel.
  178.      Es werden also alle do-Befehle der Raumdatei angezeigt.
  179.    2 Items
  180.      Hier können Sie klicken, wenn Sie etwas mit den Gegenständen im Raum
  181.      machen wollen. Die Liste zeigt nun alle Gegenstände an. Sie können nun
  182.      einen davon auswählen (anklicken). Danach können Sie auswählen, was Sie
  183.      mit dem Gegenstand machen wollen.
  184.    3 Inventory
  185.      Hiermit werden alle Gegenstände, die Sie bei sich haben gelistet.
  186.      Auch hier kann man den entsprechenden Gegenstand anklicken um zu sehen,
  187.      was damit machen kann. Und wiederum kann man eine dieser Möglichkeiten
  188.      auswählen/ausführen.
  189.    4,5 Continue, Ok
  190.      Diese Gadgets werden noch nicht abgefragt, alles Klicken bleibt unbe-
  191.      antwortet. Bis jetzt kann man sie nur benutzen um im Text weiterzukommen.
  192.    6 Cancel
  193.      Manchmal gibt Haktar auch sehr lange Texte aus. Wenn Sie die Ausgabe
  194.      beschleunigen wollen, können Sie dieses Gadget anklicken. Haktar wartet
  195.      dann nicht mehr, bevor er den Text weiterscrollt. Sie können ihn aber
  196.      trotzdem noch mit der rechten Maustaste stoppen.
  197.      Wenn Ihnen auch diese Ausgabe noch zu langsam ist, können Sie alle
  198.      restlichen Textausgaben Ihres Zuges abschalten, indem Sie das Close-
  199.      Gadget des Fensters (links oben) anklicken.
  200.      Beide Optionen beziehen sich immer nur auf den gerade laufenden Zug,
  201.      sie sind erst verfügbar, wenn Haktar mit der Textausgabe wartet.
  202.      Hat man eine der Funktionen benutzt, so ist die andere für den Rest des
  203.      Zuges gesperrt, um mit einer dauernden Abfrage nicht weitere Zeit zu
  204.      verlieren.
  205. D: Das große Textfenster dient zur Ausgabe von Beschreibungen und anderen
  206.    Meldungen. Außerdem wird der Name der Raumes in dem sich der Held befindet
  207.    hier nach jedem Zug angezeigt.
  208.    Bei längeren Texten bleibt die Anzeige alle 10 Zeilen stehen, um Ihnen Zeit
  209.    zum Lesen zu geben. Dann erscheint in der rechten unteren Ecke ein Pfeil.
  210.    Wenn Sie fortfahren wollen, können Sie ein beliebiges Gadget anklicken, es
  211.    eignen sich aber besonders das Continue Gadget (C4) und das Textfenster
  212.    selbst. Das Close- und das Cancel-Gadget scheiden für diesen Zweck
  213.    natürlich aus.
  214.  
  215. Die Funktionen einiger dieser Gadgets kann man auch über die Tastatur
  216. aufrufen :
  217. Taste                 Gadget
  218.  r                      C1
  219.  i oder <Leertaste>     C2
  220.  n                      C3
  221.  u                      B3
  222.  d                      B4
  223.  1-9                    B1
  224.  
  225. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  226.  
  227. VI Haktar Kommandos :
  228. Kommandos bestehen aus einem Kommandonamen und eventuell einigen Argumenten.
  229. Diese Argumente lassen sich in folgende Gruppe gliedern :
  230.  I  integer Zahl
  231.  W  Wort
  232.  N  Name
  233.  S  String
  234.  B  Block
  235.  BB Doppelblock
  236. - Kein Argument außer B und BB darf länger als 80 Zeichen sein !
  237. - Argumente, die im Textfenster angezeigt werden dürfen nicht länger als
  238.   79 Zeichen sein. Bitte benutzen Sie Textausgaben mit printfile mein kleines
  239.   WordWrap-Hilfsprogramm, welches eigentlich auch auf dieser Diskette sein
  240.   sollte.
  241. - Argumente, die in der Liste angezeigt werden dürfen die Länge von 77
  242.   Zeichen nicht überschreiten.
  243. - Kein Argument darf eine Rechnung (jedenfalls wird sie nicht ausgerechnet)
  244.   und nur in speziellen Fällen keine Konstante sein (doppelte Verneinung).
  245. - Also bitte keine tollen Sachen mit Variableninhalten bei normalen Argumenten
  246.   versuchen !
  247. - Wenn man INV als Raumnamen angibt (groß schreiben !), werden die
  248.   Gegenstände, die der Held bei sich trägt angesprochen. Diese "Taschen"
  249.   können wie ein normaler Raum behandelt werden. In sehr alten Abenteuern
  250.   kann man manchmal auch ein leeres Argument statt INV finden, dies ist aber
  251.   eigentlich falsch und wird NICHT zur Nachahmung empfohlen.
  252. - Den Raum, in dem der Held sich gerade befindet, spricht man mit ACTROOM
  253.   oder mit ¡ (ALT-i) an. Die ¡-Schreibweise ist aber veraltet !
  254. - Manchmal will man dem Benutzer nicht den ganzen Namen zeigen (z.B. wenn
  255.   verschiedene Gegenstände gleich aussehen und heißen sollen (oder wenn der
  256.   Held sich verlaufen hat)). Dann kann man die Teile des Namens, die nicht
  257.   ausgegeben werden sollen, mit § einklammern oder abtrennen (z.B. Wald§1 ,
  258.   Wald§2 , §3§Wald).
  259. - Außer bei Strings werden alle führenden Leerzeichen ignoriert. Bei allen
  260.   Argumenten werden nachfolgende Leerzeichen gelöscht.
  261. - Argumenttypen unterscheiden sich nur durch die Zeichen, die das Ende des
  262.   Argumentes markieren. Strings werden nur mit <return> oder · (ALT-8) oder
  263.   [ | ] beendet/getrennt. Bei Namen sind auch Kommas als Trennzeichen möglich.
  264.   Wörter werden zwar noch nicht benutzt, würden aber auch durch Leerzeichen
  265.   getrennt.
  266. - Integer Zahlen enden bei dem ersten Zeichen, das keine Ziffer ist.
  267.   Sie sind nur im Bereich von -32000 bis 32000 gültig.
  268. - Normalerweise sollten alle Argumente außer den Strings durch , getrennt
  269.   werden. Das letzte Argument eines Befehls sollte man mit <RETURN> ab-
  270.   schließen. Bei allen Argumenten sind die Zeichen [] und | nur mit viel
  271.   Vorsicht, oder besser garnicht zu benutzen. Ein | innerhalb eines positiven
  272.   if-Blocks ist verboten (, außer es ist durch [ und ] eingeschlossen).
  273.   Ein ] ohne einen entsprechenden Partner (ein [ vorher) innerhalb eines do-
  274.   oder negativen if-Blocks ist ebenso verboten.
  275. - Ein Block besteht aus beliebig vielen (auch keine) Befehlen und wird durch
  276.   [ und ] begrenzt. Bei if-Befehlen ist immer ein Doppelblock nötig, dieser
  277.   besteht aus zwei Blöcken, die durch ein | getrennt sind. Die []-Klammern
  278.   werden dann um beide Blöcke zusammen gesetzt. Also [Block 1|Block 2].
  279.   Der erste Block wird ausgeführt, wenn die if-Bedingung wahr ist; der zweite
  280.   dann, wenn die if-Bedingung falsch war. Also IF <Bedingung> THEN Wahr ELSE
  281.   Falsch   oder   if <Bedingung...> [Wahr-Block|Falsch-Block].
  282. - Wenn ein Doppelblock gefordert ist, müssen BEIDE Blöcke angegeben werden,
  283.   wenn man einen Block nicht brauch, läßt man ihn halt leer. Aber die
  284.   Klammern müssen immer getippt werden.
  285. - Um eine ODER-Verknüpfung bei if-Befehlen auszudrücken, kann man mehrere ifs
  286.   in EINE Zeile schreiben (mit Kommas trennen) und nur für das letzte einen
  287.   Doppelblock definieren. Diese Verkettung ist nur dann wahr, wenn mindestens
  288.   ein if-Befehl war ist.
  289. - Die Befehlsbeschreibung beginnt jeweils mit dem Format. Begriffe, die
  290.   zwischen <> stehen sind nur Platzhalter und müssen in der Praxis samt <>
  291.   durch andere Zeichenketten ersetzt werden. Vor den <> steht jeweils ein
  292.   Buchstabe, der in der Anwendung weggelassen wird und hier nur den Typ
  293.   (IWNSB) des Parameters angibt.
  294. - Wer Spaß dran hat, kann die Befehle auch GROSS, Normal oder GEmisChT
  295.   schreiben (nur ob Haktar das gerne sieht ...?).
  296. - Ach ja, für Tippfaule und Assembler-Freaks (gell, André, da freust Dich..)
  297.   gibt es auch grausame Abkürzungen für die meisten Befehle. Das ? für print
  298.   halte ich ja noch für sinnvoll, aber der Rest ist übertrieben. Naja, bei
  299.   extremen Situationen ist ein 'c Messer,¡' doch cool.
  300.   Die Abkürzungen für die Befehle stehen im Kapitel VII.
  301. ACHTUNG : Es ist absoluter Wahnsinn, wenn man [ und | und ] irgendwo in
  302.           Befehlen benutzt. Diese Zeichen gehören nur dahin, wo sie
  303.           unbedingt gebraucht werden, alles andere macht Haktar kaputt.
  304.           HakCheck prüft diesen Klammer-Syntax, wenn es also keine Fehler
  305.           findet, müßte auch Haktar damit zufrieden sein.
  306.           Nochmal : Keine []| in rems und prints oder Namen oder sonstwo !
  307.           P.S.: Das [ könnte noch gerade funktionieren, aber es ist riskant !
  308.  
  309. do S<Aktion> B<Kommandoblock>
  310. In jedem Raum oder Gegenstand sollte dieser Befehl mehrfach vorkommen.
  311. Wenn der Benutzer den Gegenstand anwählt, werden alle do-Befehle gelesen
  312. und die <Aktion>en angezeigt. Der Benutzer wählt nun eine dieser
  313. Möglichkeiten aus, und Haktar bearbeitet den <Kommandoblock>.
  314. Dieser Befehl ist das Kernstück Haktars.
  315.  
  316. items N<Gegenstand> N<Gegenstand> ....
  317. Gegenstände, die in einem Raum liegen sollen, werden hier aufgelistet.
  318. Ein items-Befehl sollte niemals in einem do, if o.ä. -Befehl versteckt werden,
  319. da Haktar jede Datei nur ein einziges Mal nach items-Befehlen durchsucht.
  320. Wenn diese dann versteckt sind, werden sie nie gelesen.
  321. Also solle keiner (außer den harten Profis) einen items-Befehl innerhalb einer
  322. Klammer (außer bei thing) benutzen.
  323.  
  324. move N<Gegenstand> N<Quelle> N<Ziel>
  325. Bewegt den <Gegenstand> aus dem Raum <Quelle> in den Raum <Ziel>.
  326. Er wirkt wie die Befehlsfolge :
  327. gone <Gegenstand> <Quelle>
  328. create <Gegenstand> <Ziel>
  329. Wenn der Gegenstand also garnicht in <Quelle> war, wird er trotzdem in
  330. <Ziel> erschaffen.
  331.  
  332. create N<Gegenstand> N<Raum>
  333. Erschafft den <Gegenstand> im <Raum>.
  334.  
  335. gone N<Gegenstand> N<Raum>
  336. Der <Gegenstand> im <Raum> wird gelöscht/vernichtet/zestört/... .
  337. Wenn man nicht weiß, wo der Gegenstand gerade ist (INV oder ACTROOM) kann
  338. man INVACT angeben. Dann wird erst versucht, ihn im Inventar zu löschen, und
  339. wenn er nicht da war, wird er im aktuellen Raum gekillt.
  340.  
  341. choose S<Aktion> B<Kommandoblock>
  342. choose darf nur zwischen einem startchoose und einem endchoose stehen.
  343. Die <Aktionen> aller zwischen diesen Befehlen stehenden choose-Befehle
  344. werden dem Benutzer angeboten. Wenn dieser sich entschieden hat, wird der
  345. entsprechende <Kommandoblock> ausgeführt. Dadurch kann man einen do-Befehl
  346. weiter auffächern, zum Beispiel nachfragen, ob der Benutzer vorsichtig oder
  347. schnell gehen will, wenn man vorher die do-Aktion "gehen" gewählt hat.
  348. choose macht natürlich nur Sinn, wenn mindestens zwei choose-Befehle zwischen
  349. startchoose und endchoose stehen.
  350. choose-Blöcke (aus startchoose, n*choose, endchoose) dürfen nicht so gestellt
  351. werden, daß die Möglichkeit besteht, daß mehr als einer in einem Zug
  352. ausgeführt wird. Also sollte man choose-Blöcke nicht hintereinander stellen.
  353. Es dürfen bis zu zehn choose-Blöcke ineinander verschachtelt werden.
  354.  
  355. startchoose
  356. Markiert den Anfang eines choose-Blocks.
  357.  
  358. endchoose
  359. Markiert das Ende eines choose-Blocks.
  360.  
  361. setflag N<flag>
  362. Das <flag> wird gesetzt.
  363.  
  364. delflag N<flag>
  365. Das <flag> wird gelöscht.
  366.  
  367. setvar N<var> I<Wert>
  368. Die Varible <var> wird erschaffen und auf <Wert> gesetzt. <Wert> ist eine
  369. rein numerische Konstante.
  370. Variablen können nur ganze Zahlen enthalten. Negative Werte sind möglich.
  371. Variablen verbrauchen mehr Speicher als Flags und können nicht wieder
  372. gelöscht werden.
  373.  
  374. addvar N<var> I<Wert>
  375. Zu dem Wert der Variable <var> wird eine Konstante <Wert> addiert. Falls die
  376. Variable noch nicht existiert (keinen Wert hat), wird sie auf <Wert> gesetzt.
  377. <Wert> darf natürlich auch negativ sein.
  378.  
  379. print S<Text>
  380. Gibt den <Text> aus. Bitte oft benutzen.
  381. Bevor Text herausgescrollt wird, ruft Haktar automatisch den wait-Befehl auf.
  382.  
  383. cprint S<Text>
  384. Wie print, nur wird der Text zentriert ausgegeben.
  385.  
  386. printvar N<Intro> N<Var> N<Ende>
  387. Der Wert einer <Var>iablen wird (mit Leerzeichen drumrum) zwischen den Texten
  388. <Intro> und <Ende> ausgegeben. Leider dürfen hier keine Kommas IN den Texten
  389. stehen.
  390.  
  391. wait
  392. Der Befehl wartet darauf, daß der User das Textfenster anklickt.
  393. Dieser Befehl ermöglicht es, die Abschnitte, in die print die Zeilen einteilt,
  394. vernünftiger zu setzen. Einfach an der richtigen Stelle ein wait, und alles
  395. ist in Marken-Butter.
  396.  
  397. noautowait
  398. Für diesen Zug werden alle automatischen waits ausgelassen. Ausdrückliche
  399. wait-Anweisungen werden trotzdem ausgeführt. (Das ganze läuft so ähnlich, wie
  400. ein Druck auf Cancel.)
  401.  
  402. locoff
  403. Normalerweise wird der Aufenthaltsort des Helden im Textfenster und der
  404. Titelleiste angezeit. Mit simpleface geladene Grafiken werden dadurch im
  405. Bereich der Titelleiste überschrieben. Wenn dieses unerwünscht ist, dann
  406. kann man die Anzeige in der Titelleiste mit locoff unterbinden.
  407. Wenn das Haktarfenster reaktiviert wird, wird die Titelleiste automatisch
  408. von Intuition geändert. Ich hoffe, daß ich das später ändern kann.
  409.  
  410. locon
  411. Von nun an wird der Aufenthaltsort des Helden wieder in der Titelleiste
  412. angezeigt.
  413.  
  414. getphrase S<Nehmen-Phrase>
  415. Wenn Sie den handle-Befehl benutzen wollen, müssen Sie vorher (am besten in
  416. der Kopf-Datei) diesen und die nächsten beiden Befehle benutzt haben.
  417. Mit diesem hier können Sie den Text angeben, mit dem die Möglichkeit, den
  418. Gegenstand zu nehmen, in die Auswahlliste eingetragen werden soll.
  419. Sowohl hier als auch bei den beiden folgenden Befehlen können Sie ein §
  420. benutzen. Dieses wird dann durch den jeweils aktuellen Gegenstandsnamen
  421. ersetzt.
  422.  
  423. dropphrase S<Weglegen-Phrase>
  424. Mit diesem Befehl wird der Text angegeben, der ein ablegen des Gegenstandes
  425. ausdrücken soll.
  426.  
  427. cantgetphrase S<GehtNicht-Phrase>
  428. Wenn ein Gegenstand zu schwer ist, kann man ihn nicht nehmen.
  429. In diesem Falle gibt der handle-Befehl diesen Text aus, um dieses
  430. auszudrücken.
  431.  
  432. handle I<Gewicht>
  433. Dieser komplexe Befehl löst das nehmen/weglegen-Problem.
  434. Er bezieht sich auf den Gegenstand, in dessen Datei er steht und fügt je
  435. nachdem, ob der Held den Gegenstand hat, die Nehmen-Phrase oder die
  436. Weglegen-Phrase der Liste der möglichen Entscheidungen an.
  437. Wenn eine dieser Möglichkeiten gewählt wird, legt der Held den Gegenstand
  438. ab, oder nimmt ihn auf. Das <Gewicht> wird dabei vom getragenen Gewicht
  439. abgezogen/addiert. Wenn diese Summe das Maximalgewicht überschreitet,
  440. wird die GehtNicht-Phrase ausgegeben und nichts passiert.
  441. Handle wirkt so, als ob man folgende Befehle an seiner Stelle angegeben
  442. hätte :
  443. ifitemin Stein,INV
  444.  [
  445.   do Stein weglegen
  446.    [
  447.     move Stein,INV,ACTROOM
  448.     addweight -10
  449.    ]
  450.  |
  451.   do Stein nehmen
  452.    [
  453.     ifweight 10
  454.      [
  455.       print Zu schwer !
  456.      |
  457.       move Stein,ACTROOM,INV
  458.       addweight 10
  459.      ]
  460.    ]
  461.  ]
  462. Diese Zeilen kann man durch 'handle 10' ersetzen. Voraussetztung ist
  463. natürlich, daß sich der Befehl in der Datei 'Stein' befindet, und daß
  464. irgendwo vorher folgendes gelesen wurde :
  465. getphrase § nehmen
  466. dropphrase § weglegen
  467. cantgetphrase Zu schwer !
  468. ACHTUNG : Wenn mehr als ein Gegenstand mit dem selben Namen im Raum und
  469.           im Inventory ist, reagiert handle etwas seltsam. z.B.: Ein Stein
  470.           liegt im Raum, der Held hat einen zweiten Stein bei sich. Wenn man
  471.           nun den Stein im Raum anwählt, zeigt Haktar außer der Möglichkeit,
  472.           ihn zu nehmen, auch an, daß man ihn weglegen kann. Wählt man
  473.           weglegen, so wird der Stein, den der Held hat, weggelegt. Es ist
  474.           zwar nicht besonders schön, aber man kann damit leben...
  475.  
  476. headpath N<Pfadname>
  477. Haktar muß wissen, wo Sie die Räume und Gegenstände gespeichert haben.
  478. Mit diesem Befehl können Sie diesen <Pfadnamen> angeben.
  479. Dieser Befehl muß eigentlich immer in der Kopf-Datei vorkommen.
  480. <Pfadname> wird jedem Raum-/Gegenstandsnamen vorangestellt, wenn dieser von
  481. Diskette geladen wird.
  482. Beispiele :
  483. DF0:
  484. HaktarDisk:Abenteuer
  485. HaktarDisk:Abenteuer/DasAlteHaus
  486.  
  487. multi N<Datei> N<Datei> ....
  488. Hier kann man eine Liste der Dateien anführen, die mehr als einen Gegenstand
  489. enthalten. Haktar durchsucht diese dann und legt eine Liste an. Wenn ein
  490. Gegenstand angesprochen wird, so wird erst diese Liste durchsucht. Falls
  491. der gesuchte Gegenstand oder Raum gefunden wurde, wird der Gegenstand aus
  492. der entsprechenden Datei ausgeführt.
  493.  
  494. thing N<Name> B<Befehle>
  495. Wenn man mit multi mehrere Gegenstände oder Räume zu einer einzigen Datei
  496. zusammengefaßt hat, muß man jeden Gegenstand oder Raum innerhalb dieser Datei
  497. mit diesem Befehl deklarieren. <Name> ist der Gegenstandsname. <Befehle> sind
  498. einfach die Befehle, die zu diesem Gegenstand gehören. Wenn man nur einen
  499. Gegenstand pro Datei beschreibt, braucht man diesen Befehl nicht. Dann wird
  500. nämlich der Dateiname als Gegenstandsname benutzt.
  501.  
  502. maxweight I<Gewicht>
  503. Wenn Sie die Traglast des Helden einschränken wollen, können Sie mit diesem
  504. Kommando die maximale Traglast als <Gewicht> angeben. Die Einheit spielt
  505. natürlich keine Rolle.
  506.  
  507. addweight I<Gewicht>
  508. Wenn der Held einen Gegenstand nimmt, benutzen Sie bitte diesen Befehl um
  509. das <Gewicht> des Gegenstandes dem getragenen Gewicht 
  510.  
  511. settime I<Zeit>
  512. Die Spielzeit wird auf <Zeit> gestellt (meistens settime 0).
  513.  
  514. addtime I<Zeit>
  515. Die <Zeit> wird zu der Spielzeit addiert.
  516.  
  517. go N<Raum>
  518. Der Held wird (sanft) in den <Raum> befördert. Nur so kann er sich bewegen.
  519. Es ist (ziemlich) UNBEDINGT notwendig, diesen Befehl in der Kopf-Datei zu
  520. verwenden um den Startraum festzulegen.
  521.  
  522. input
  523. Der User darf eine Zeichenkette eingeben, die dann mit ifinput verglichen
  524. werden kann.
  525.  
  526. dead
  527. Das ist der Lieblingsbefehl aller gemeiner Haktar-Adventure-Programmierer.
  528. Der Held stirbt. Game Over !
  529.  
  530. rem S<Bemerkung>
  531. Wird knallhart überlesen, man kann damit nur Bemerkungen im Listing geben.
  532.  
  533. execute N<Datei>
  534. Oft wiederholen sich bestimmte Befehlsgruppen in einem Abenteuer.
  535. Diese können sie als getrennte <Datei> anlegen und mit diesem Befehl
  536. ausführen lassen.
  537.  
  538. doscall N<Kommando>
  539. Haktar führt das <Kommando> wie einen CLI-Befehl aus. Der Befehl muß natürlich
  540. im aktuellen oder C: Verzeichnis sein.
  541.  
  542. storevars N<Dateiname> N<Variable>...
  543. Haktar kann viel, aber nicht alles. Deswegen gibt es diesen Befehl. Er
  544. speichert den Inhalt einer oder mehrerer <Variablen> in einer Datei.
  545. Diese Datei enthält dann die Werte der Variablen in der gleichen Reihenfolge
  546. wie sie hinter dem Befehl stehen. Die Werte werden als LongWords gespeichert.
  547. Diese Werte kann ein Programm, das mit doscall aufgerufen wurde, einlesen.
  548.  
  549. getvars N<Dateiname> N<Variable>...
  550. Um Informationen von einem mit doscall aufgerufenen Programm zu verwerten,
  551. sollte dieses diese als LongWords (signed long) in einer Datei abgelegt haben.
  552. Die Werte werden dann der Reihe nach den <Variablen> zugeordnet.
  553.  
  554. choose N<Mögliche Aktion> B<Befehle>
  555. Dieser Befehl funktioniert so ähnlich wie do. Die <Möglichen Aktionen> aller
  556. choose-Befehle werden in der Liste angezeigt und die <Befehle> der vom User
  557. angeklickten Möglichkeit werden ausgeführt.
  558. Bis zu zehn choose-Befehle können ineinander verschachtelt werden.
  559. choose-Blöcke dürfen nur innerhalb von do-Kommandoblöcken benutzt werden.
  560.  
  561. startchoose
  562. Markiert den Anfang einer Gruppe von choose-Befehlen.
  563.  
  564. endchoose
  565. Das Ende einer choose-Gruppe.
  566.  
  567. eachmove N<Datei>
  568. Mit diesem Befehl kann man eine Datei angeben, die nach jedem Zug ausgeführt
  569. werden soll. Dies ist manchmal bei Zeitbegrenzungen sinnvoll, man legt dann
  570. einfach eine Datei mit dem entsprechenden iftime Befehl an und gibt diese
  571. Datei mit eachmove an. Es kann immer nur eine Datei durch eachmove angegeben
  572. werden. Wenn man die Begrenzung nicht mehr braucht, kann man etwas Zeit und
  573. Speicher sparen, indem man mit 'eachmove ' das Ausführen nach jedem Zug
  574. ausschaltet.
  575. Fehler: Die <Datei> muß eine echte, seperate Datei sein, nicht nur ein
  576.         thing innerhalb einer multi-Datei.
  577.  
  578. showpic N<Bild> I<MaxTime>
  579. Das IFF/ILBM-Bild <Bild> wird angezeigt und der Computer wartet auf einen
  580. Mausklick. Wenn Sie das Bild nicht beliebig lange zeigen wollen, können Sie
  581. mit <MaxTime> die Zeit, die das Bild maximal sichtbar sein soll, angeben.
  582. <MaxTime> wird in Frames gemessen, dies entspricht auf deutschen Amigas
  583. 1/50 Sekunden. Wenn Sie das Bild beliebig lang zeigen wollen, müssen Sie
  584. <MaxTime> auf Null setzen.
  585. Wenn der Prozessor überlastet ist, kann die Zeitmessung etwas falsch sein,
  586. dies sollte aber selten der Fall sein.
  587. Bei PAL-Monitoren werden die untersten 56 Pixelzeilen von Haktar nicht
  588. genutzt. Wenn man diese Zeilen für ein kleines Bild nutzen möchte, dann
  589. kann man mit "doscall run showilbm <Bild> sub" das <Bild> dort escheinen
  590. lassen. Es bleibt dann dort, bis der Benutzer darauf klickt. Haktar läuft
  591. während dieser Zeit normal weiter. Natürlich muß das Programm showilbm auf
  592. der Diskette sein. Dabei wird das Bild so dargestellt, daß sein unterster
  593. Rand am unteren Ende des Bildschirmes liegt.
  594.  
  595. showpicsub N<Bild> I<MaxTime>
  596. Bei PAL-Amigas kann mit mit diesem Befehl ein Bild im unteren Bildschirm-
  597. bereich angezeigt werden. Es bleibt hier entweder, bis <MaxTime> abgelaufen
  598. ist, oder bis showpicsub erneut aufgerufen wird.
  599. Gibt man keine Parameter an, dann wird ein eventuell vorhandenes Bild
  600. gelöscht.
  601. Die Bilder, die im PAL-Streifen angezeigt werden sollen, sollten nicht
  602. höher als 54 Punkte (noninterlaced) sein.
  603.  
  604. simpleface N<Bild>
  605. Das IFF/ILBM-<Bild> wird als Benutzeroberfläche benutzt. Dadurch kann man
  606. das Aussehen von Haktar etwas verschönern, indem alle Bildschirmbereiche,
  607. die im Laufe des Spiels nicht durch Haktar selbst verändert werden, durch
  608. dieses Bild ersetzt werden. Das Bild muß 640 Punkte weit und 200 Punkte hoch
  609. sein.
  610. Hier sind die Koordinaten der Gadgets (x,y,Breite,Höhe):
  611. PropDown 5,76,11,9
  612. PropUp   5,12,11,9
  613. Prop     5,23,11,51
  614. ListGad  17,13,618,8 (Das erste von neun. Die weiteren liegen je 8 Pixel
  615.                       tiefer.)
  616. Standard 7,91,100,9  (Das erste von sechs. Die weiteren liegen je 105
  617.                       Pixel weiter rechts.)
  618. TextGad  4,106,632,81
  619.  
  620. font S<Zeichensatz>
  621. Für alle folgenden Ausgaben (in der Liste und im Textfenster) wird der
  622. angegebene Zeichensatz benutzt.
  623. Normalerweise haben Zeichensätze eine .font Endung, also bitte nicht
  624. vergessen.
  625. Dieser Zeichensatz muß im normalen Amiga-Format im FONT: Verzeichnis sein.
  626. Um die Bildschirmmaske nicht zu zerstören sind nur Zeichensätze erlaubt, die
  627. die gleiche Größe (Höhe UND Breite) wie Topaz 8 haben. Proportionalschriften
  628. sind NICHT erlaubt.
  629. Zeichensätze können einfach mit dem Standard Font Editor erstellt werden.
  630.  
  631. printfile N<Textdatei>
  632. Die ASCII-<Textdatei> wird wie bei print angezeigt.
  633.  
  634. sys S<code> ???
  635. Mit diesem Befehl können spezielle Routinen benutzt werden.
  636. Wenn Sie also mal was besonderes brauchen, können sie den Quellcode bei
  637. diesem Befehl ändern. Bitte Überlegen Sie sich einen eigenen <code>, um
  638. Probleme mit weiteren oder fremden Erweiterungen zu vermeiden. Eigentlich
  639. könnten Sie auch einen eigenen Befehl für diesen Zweck erfinden, aber dies
  640. ist riskant, denn dieses sollte nur ich selbst tun.
  641.  
  642. ifflag N<flag> BB<blocks>
  643. Wenn das Flag flag gesetzt ist, wird der erste Block ausgeführt, sonst der
  644. zweite.
  645.  
  646. ifvar N<var> I<low> I<high> BB<blocks>
  647. Ist wahr, wenn der Inhalt der Variablen <var> größer oder gleich <low> und
  648. kleiner oder gleich <high> ist. Wenn die Variable noch nicht mit setvat
  649. initialisiert worden ist, wird der Wert 0 angenommen.
  650. <high> kann man auch weglassen, dann wird als obere Grenze unendlich
  651. angenommen.
  652.  
  653. ifitemin N<Gegenstand> N<Raum> BB<blocks>
  654. Ist wahr, wenn der <Gegenstand> sich im <Raum> befindet.
  655. Wie bei gone kann man auch hier INVACT als <Raum> angeben. Dann wird nur
  656. geprüft, ob der <Gegenstand> in erreichbarer Entfernung ist.
  657.  
  658. ifin N<Raum> BB<blocks>
  659. Ist wahr, wenn sich der Held gerade im Raum <Raum> aufhält.
  660.  
  661. ifweight I<Gewicht> BB<blocks>
  662. Ist wahr, wenn der Held das zusätzliche Gewicht <Gewicht> tragen kann.
  663.  
  664. iftime I<untere Grenze> I<obere Grenze> BB<blocks>
  665. Ist wahr, wenn die Spielzeit zwischen oder gleich <untere Grenze> und
  666. <obere Grenze> ist. 
  667. <obere Grenze> kann man auch weglassen, dann wird sie als unendlich
  668. angenommen.
  669.  
  670. ifinput N<Zeichenkette> BB<blocks>
  671. Ist wahr, wenn der User beim letzten input-Befehl <Zeichenkette> eingegeben
  672. hat. Man kann beliebig viele input-Befehle mit nur einem input-Befehl
  673. benutzen.
  674.  
  675. ifchance <Prozent> BB<blocks>
  676. Haktar generiert eine Zufallszahl und vergleicht sie mit <Prozent>.
  677. Wenn die Zahl kleiner oder gleich war, wird der erste Block ausgeführt.
  678. Sonst wird der zweite aktiv.
  679.  
  680. Da das alles wohl sehr viel war, sollte man sich diesen Abschnitt ruhig noch
  681. einmal reinziehen. Wer es dann immernoch nicht begriffen hat, sollte sich
  682. auch mal das dokumentierte Beispielabenteuer ansehen (sofern es auf der Disk
  683. ist. Wahrscheinlich hat's Fred Fish gegessen...).
  684.  
  685. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  686.  
  687. VII  Für alle die den Überblick verloren haben :
  688. Alle Befehle in der geordneten Formatliste :
  689. Achtung: Haktar liest jede Datei mehrmals pro Zug. Dieses kann zu unge-
  690.          wünschten Effekten führen. Jedesmal wenn eine neue Liste angeboten
  691.          wird, liest Haktar die ganze Datei durch und führt alle Befehle
  692.          auf der Ebene unter den Befehlen, die die Liste aufbauten, aus.
  693.          Bitte seien Sie also sehr vorsichtig. Wenn Sie folgende Regel
  694.          befolgen, kann eigentlich nichts passieren.
  695.          Benutzen Sie Befehle nur in der (Block-)Ebene, die durch den Typ
  696.          empfohlen wird.
  697.          a : nur in der untersten Ebene benutzen (nicht in einem Block)
  698.          b : nur in der höchsten Ebene benutzen (einem Block ohne weitere
  699.              choose- oder do-Befehlen)
  700.          c : überall
  701.          d : weder in der höchsten, noch in der untersten Ebene benutzen
  702.          Haktar versucht, jeden Befehl pro Zug nur einmal auszuführen, hat
  703.          aber manchmal Probleme damit. Z.B. sollte man bei verschachtelten
  704.          choose-Blöcken Vorsicht walten lassen.
  705.  
  706. Befehl       Abkürzung  Typ Argumente
  707. addtime         at       b   I<Dauer>
  708. addvar          av       b   N<Variable> I<Integer>
  709. addweight       aw       b   I<Gewicht>
  710. cantgetphrase   cgp      b   S<Zu Schwer>
  711. choose          c        d   S<Aktionsbezeichnung> B
  712. cprint          c? , !   b   S<Text>
  713. create          c        b   N<Ding> N<Raum>
  714. dead            d        b
  715. delflag         df       b   N<Flag>
  716. do                       a   S<Aktionsbezeichnung> B
  717. doscall         dc       b   N<Kommando>
  718. dropphrase      dp       b   S<weglegen>
  719. eachmove        em       b   N<Datei>
  720. endchoose       ec       d
  721. execute         e        b   N<Datei>
  722. font            fo       b   S<Zeichensatz>
  723. getphrase       gp       b   S<nehmen>
  724. getvars         gv       b   N<Datei> N<Variable>...
  725. go                       b   N<Raum>
  726. gone            g , lost b   N<Ding> N<Raum>
  727. handle          h        a   I<Gewicht>
  728. headpath        hp       b   N<Verzeichnis>
  729. ifchance        ic       c   I<Prozent> BB
  730. ifflag          if       c   N<Flag> BB
  731. ifin            ii       c   N<Raum> BB
  732. ifinput         iinp     c   N<Vergleichstext> BB
  733. ifitemin        iii      c   N<Gegenstand> N<Raum> BB
  734. iftime          it       c   I<untere Grenze> I<obere Grenze> BB
  735. ifvar           iv       c   N<Variable> I<untere Grenze> I<obere Grenze> BB
  736. ifweight        iw       c   I<zusätzliches Gewicht>
  737. input           inp      b
  738. items           i        a   N<Gegenstand> NNNN...
  739. locoff          loff     b
  740. locon           lon      b
  741. maxweight       mw       b   I<Gewichtsbeschränkung>
  742. move            m        b   N<Gegenstand> N<Quellraum> N<Zielraum>
  743. multi           mf       b   N<Datei> NNNN...
  744. noautowait      naw      b
  745. print           p , ?    b   S<Text>
  746. printfile       pf       b   N<Textdatei>
  747. printvar        pv , ?v  b   N<Introtext> N<Variable> N<Abschlußtext>
  748. rem             ;        3   S<Bemerkung>
  749. setflag         sf       b   N<Flag>
  750. settime         st       b   I<Zeit>
  751. setvar          sv       b   N<Variable> I<Wert>
  752. showpic         sp       b   N<Datei> I<Zeit>
  753. showpicsub      sp       b   N<Datei> I<Zeit>
  754. simpleface      sif      b   N<Datei>
  755. startchoose     sc       d
  756. storevars       stv      b   N<Datei> N<Variable>...
  757. sys             s        b   S<Code>
  758. thing           t        a
  759. wait            w        b
  760.  
  761. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  762.  
  763. VIII HakCheck :
  764. Da man beim Erstellen eines komplexen Abenteuers häufig Fehler macht, ist
  765. es sinnvoll, diese Abenteuer mit HakCheck auf ihre Richtigkeit zu prüfen.
  766. HakCheck wird mit 'HakCheck <Kopfdatei>' gestartet.
  767. Es gibt dann folgenden Daten aus :
  768. - Beim Überprüfen wird ausgegeben, welche Datei gerade getestet wird.
  769. - Used flags : Hier stehen alle Flags, die im Abenteuer angesprochen werden.
  770.   Ein häufiger Fehler ist, daß man das gleiche Flag unterschiedlich schreibt.
  771.   Diesen Fehler sollte man anhand dieser Liste leicht finden.
  772. - Used vars : Hier stehen alle benutzten Variablen, aus dem gleichen Grund,
  773.   wie bei den Flags.
  774. - Bad var-references : Wenn mit addvar oder ifvar auf Variablen zugegriffen
  775.   wird, die niemals mit setvar initialisiert wurden, ist wahrscheinlich etwas
  776.   faul. Diese Variablen werden hier aufgelistet.
  777. - References to not existing files : Oft vergißt man, Räume oder Gegenstände
  778.   zu erstellen. Wenn auf solche nicht vorhandenen Dateien zugegriffen wird,
  779.   so erscheinen die Dateinamen in dieser Liste. Man sollte sie dann ergänzen.
  780. - Number of files : Die Anzahl der Dateien dieses Abenteuers.
  781. - Total length : Die Gesamtlänge des Abenteuers in Bytes (Zeichen).
  782. - Average length : Die durchschnittliche Länge einer Datei.
  783. Traurig aber wahr : Ich bin zu faul, mir die Arbeit zu machen und die Dateien
  784. und Zeilen auszugeben, in denen die flags und so benutzt wurden. Also benutzt
  785. mal den search Befehl vom CLI. Immerhin gibt HakCheck die Positionen der
  786. echten Fehler aus !
  787.  
  788. Außerdem kann HakCheck die Dateien eines Abenteuers schützen. Diese sind dann
  789. nicht mehr lesbar, können aber trotzdem gespielt werden.
  790. Der Aufruf lautet dann :
  791. HakCheck <Kopfdatei> CODE <code>
  792. <code> muß ein Wort mit 4 Buchstaben sein.
  793. Wenn man das Codewort kennt, kann man die Dateien auch wieder entschlüsseln :
  794. HakCheck <Kopfdatei> DECODE <code>
  795.  
  796. Wenn man mit multi und thing sehr große Dateien schreibt, wird Haktar bald
  797. sehr langsam, da er dauernd die ganze Datei lesen und bearbeiten muß.
  798. Deshalb ist es dann sinnvoll, diese große Datei in viele kleine zu zerteilen.
  799. Das kann man auch mit HakCheck machen :
  800. HakCheck <Kopfdatei> SPLIT
  801. Wenn eine Datei mit thing Befehlen gefunden wird, erzeugt HakCheck
  802. entsprechende Dateien, die dann die richtigen Namen und Inhalte haben.
  803. Die multi Befehle und die großen multi Dateien muß man jedoch per Hand
  804. löschen. Normalerweise löscht man also alle multi Befehle in der Kopfdatei
  805. und die entsprechenden Dateien, die dann ja nicht mehr gebraucht werden.
  806.  
  807. Bei langen Abenteuern werden die Listen sehr umfangreich, deswegen kann man
  808. die unwichtigeren abschalten :
  809. HakCheck <Kopfdatei> QUIET
  810.  
  811. Achtung:
  812.   HakCheck braucht einen sehr großen Stapel (stack). Bitte achten Sie
  813.   darauf, daß Sie einen genügend groß dimensionierten Stapel haben, da HakCheck
  814.   sonst abstürzt. Der Bedarf an Stapel-Speicher steigt mit der Komplexität
  815.   der zu untersuchenden Abenteuer.
  816.  
  817.  
  818. Weitere Hilfsprogramme für Haktar:
  819. ==================================
  820. Mir sind folgende Hilfsprogramme speziell für Haktar bekannt (Meine eigenen
  821. lasse ich mal weg):
  822. HakCrunch von Eric Hambuch wandelt alle Befehle in ihre Abkürzungen.
  823. HakFormat von Eric Hambuch formatiert Dateien ordentlich.
  824.  
  825. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  826.  
  827. IX  Wer hat hier was geleistet ?
  828. - Also erschtama Isch. Isch ham vill geloistät.
  829.   Guido Wegener :  Programmierung, Konzept, Idee, Testen
  830. - Hans Christian Fraenkel : Testen, Ideen, Abenteuer
  831. - Eric Hambuch: Abenteuer, Hilfsproggies, Bugs, Ideen
  832. - André Wichmann :  Testen, Kritik/Vorschläge (multi/thing,#),
  833.   Abenteuer?
  834. - Hans Christian Fraenkel : Testen, Ideen, Abenteuer
  835. - Robert Heselmann : Testen
  836. - Martin Rosenkranz : hätte testen sollen ...
  837. - Commodore : AMIGA 500, 1MB, A590 HD, 1084S
  838. - irgendwas mit Senator : 2nd Drive
  839. - SWF3 : Hintergrundgeräusche
  840. - Addison Wesley : Amiga Rom Kernal Reference Manuals
  841. - Manx : Aztec C 5.0b  (is' das Geld doch wert)
  842. - Schule, Krankheit, Verwandte, Alk, Glasscherben, Games, TV :
  843.   Abhalten vom Programmieren
  844. - Kronsteiner, Schrader : Getränke zum Denken
  845. - Lovecraft : Anregung
  846. - E.A. Poe : Abschalten
  847. - Competition Pro : für die Games... (Ich hab' mir an meinen neuen, durch-
  848.   sichtigen 'nen alten Stab gemacht, ich mag diesen glatten Griff nicht.
  849.   Bauanleitung : Knüppel austauschen und 'nen extra Unterlegring druff.)
  850. - Benji (Hundi) : Frischluft für 'nen klaren Kopf
  851. - Kriegsdienstverweigerung : Arbeit, Streß und Ärger
  852. - Abitur : schlechten Schlaf und Gewissensbisse (Leistungsdruck)
  853. - Untere Wasserbehörde des Tiefbauamtes der Stadt Bonn (ganz unten) :
  854.   Zuvieldienstjob  -->  ruhigeren Schlaf
  855. - Edward Buwler-Lytton : Zanoni, und somit abgefahrene Literatur.
  856. - The Ancient City Healthy Ball Factory of Baoding : Qigong Kugeln
  857.   Nein, ich habe keinen Werbevertrag mit den Leuten, ich finde die Teile
  858.   halt toll. Und meine drei Paare habe ich selbst bezahlt !
  859. - Ludwig Rotstift (Ebi) : Computer-Flohmarkt, die coolste kaufbare
  860.   Computerzeitschrift, fast schon ein SzeneMag.
  861.  
  862. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  863.  
  864. X Was kann ich für Haktar tun ?
  865.  
  866. Richtig ! Frage nicht was Haktar für Dich tun kann, sondern was Du für Haktar
  867. tun kannst !
  868. Also ich habe jetzt schon ein Jahr an dem Programm gearbeitet und will
  869. natürlich, daß möglichst viele Leute Spaß damit haben. Aber ich weiß nicht
  870. genau, was Euch Spaß macht. Also sagt es mir ! Ich nehme jede Kritik ernst.
  871. Exakt ausgearbeitete Erweiterung sind mir natürlich am liebsten, aber eine
  872. nette Idee oder ein "... find ich Scheiße" ist auch schon besser als nichts.
  873. Allerdings weiß ich nicht, ob ich auf jeden "Haktar find' ich Scheiße !"-
  874. Brief antworten werde. Wirklich gute Vorschläge werden mit Updates belohnt.
  875.  
  876. Hey, Du !
  877. (Wer ? Ich ?)
  878. Genau !
  879. Ich bin mir sehr sicher, daß in Haktar und den mitgeliferten Abenteuern noch
  880. viele Fehler stecken. Was, Du hast einen gesehen ? Na super ! Sag's mir doch
  881. BITTE ! Schreib mal wieder. Auch Tippfehler (nicht in Deinem Brief) sind
  882. willkommen. Bei anderen Fehlern wäre es SEHR sinnvoll, wenn Du noch folgendes
  883. angeben würdest :
  884.  - die Version von Haktar
  885.  - Deine Systemkonfiguration (mit Kickstartversion und allen Turbokarten und
  886.    Crackmodulen)
  887.  - Wann und wie tritt der Fehler auf ? Beschreibe bitte alles so, daß ich es
  888.    auch mal ausprobieren kann. Da der Fehler bei mir vielleich nicht auftritt,
  889.    brauche ich auch eine möglichst genaue Beschreibung des Fehlers. Denk bitte
  890.    auch an eine eventuelle Gurunummer. Am Besten wäre es, wenn Du mir auch die
  891.    Diskette mit Haktar leihen würdest. Bei Fehlermeldungen ist manchmal die
  892.    Anzahl der Ausrufezeichen (und ähnliches) wichtig!
  893.  
  894. Da war doch noch was...
  895. Achja, das mit dem Selberschreiben von Abenteuern.
  896. Wenn Du ein Abenteuer für Haktar geschrieben hast, dann schick mir doch
  897. bittebittebittebittebittebittebitte eine Kopie. Die Disk kriegste bestimmt
  898. wieder. Und wenn Du damit einverstanden bist, daß das Abenteuer als PD
  899. verbreitet wird, dann schreib mir 'ne entsprechende Erlaubnis.
  900. Wer mir Abenteuer zuschickt und angibt, welche Sprachen er versteht, der
  901. kriegt Kopien der anderen (mir zugeschickten) Abenteuer.
  902.  
  903. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  904.  
  905. Bitte schicken Sie Fehlerberichte, Änderungsvorschläge, gute Ideen, Kritik,
  906. enthusiastische Fan-Briefe, Abenteuer und Geld an den Autor (mein Ego und
  907. meine Brieftasche wären ja sooo glücklich) :
  908.                                        Guido Wegener
  909.                                        Eisenacher Str. 2
  910.                                        5300 Bonn 1
  911.                                        West Germany
  912. °ª°  =:->   :-)  °º°
  913.  
  914.